package com.triones.ljr.controller.api;

import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.ljr.entity.bo.PolicyParams;
import com.triones.ljr.entity.vo.*;
import com.triones.ljr.service.PolicyOptionService;
import com.triones.ljr.service.PolicyService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * api - 我要获策
 *
 * @Author: triones
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/api/policy")
public class ApiPolicyController extends BaseController {

    private final PolicyOptionService policyOptionService;

    private final PolicyService policyService;

    /**
     * 获取政策选项数据
     * 政策级别：1934794008470931234(政策收集)
     * 政策类别：1934794008470931235(政策收集)
     * 发文机关：1934794008470931236(政策收集)
     * 政策级别：1934794008470931237(梁平惠企政策超市)
     * 政策类别：1934794008470931238(梁平惠企政策超市)
     * 发文机关：1934794008470931239(梁平惠企政策超市)
     */
    @GetMapping("/optionData/list/{cid}")
    public R<List<PolicyOptionDataVO>> optionDataList(@PathVariable Long cid) {
        return R.ok(policyOptionService.optionDataListByCid(cid));
    }

//    /**
//     * 获取行业数据
//     */
//    @SaIgnore
//    @GetMapping("/industry/list")
//    public R<List<IndustryCodeDO>> industryTreeList() {
//        List<IndustryCodeDO> list = policyService.industryTreeList();
//        return R.ok(list);
//    }

    /**
     * 查询政策列表（分页）
     */
    @GetMapping("/pageList")
    public TableDataInfo<CustomPolicyVO> pageList(PolicyParams params, PageQuery pageQuery) {
        params.setShowStatus(0);
        return policyService.apiPageList(params, pageQuery);
    }

    /**
     * 查询政策详情
     */
    @GetMapping("/detail/{id}")
    public R<CustomPolicyVO> getPolicyDetail(@NotNull(message = "id不能为空") @PathVariable Long id) {
        return R.ok(policyService.getPolicyDetail(id));
    }

    /**
     * 一键申报列表（分页）
     */
    @GetMapping("/item/pageList")
    public TableDataInfo<PolicyItemVO> apiItemPageList(String  keyword, PageQuery pageQuery) {
        return policyService.apiItemPageList(keyword, pageQuery);
    }

    /**
     * 查询政策细则详情
     */
    @GetMapping("/item/detail/{id}")
    public R<CustomPolicyItemVO> itemDetail(@PathVariable @NotNull(message = "id不能为空") Long id) {
        return R.ok(policyService.itemDetail(id));
    }

    /**
     * 政策已兑换的企业列表
     */
    @GetMapping("/declareAudit/list")
    public R<List<CustomDeclareAuditVO>> declareAuditList() {
        return R.ok(policyService.declareAuditList());
    }
}
